package com.mall.malladminbackend.controller;

import com.mall.malladminbackend.dto.LoginDto;
import com.mall.malladminbackend.model.R;
import com.mall.malladminbackend.service.SysUserService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 前端能够传递给服务器端只有 jwt, 那么 spring security 拿到 jwt之后，以 security方式认为我们登录过：
 *    处理方式就是从JWT 中提取用户的信息，然后封装出一个 UsernamePasswordAuthenticationToken 这样一个对象，
 *    还需要将其添加到 security 的上下文中，那么security就认为我们登录了，那么就可以访问需要登录才能访问的接口。
 */
@RestController
@RequestMapping("/login")
@AllArgsConstructor
public class LoginController {

    private SysUserService sysUserService;

    // axios 除了GET请求以外，所有的请求 Content-Type application/json
    @PostMapping
    public R login(@RequestBody LoginDto loginDto) {
        return sysUserService.checkUsernameAndPassword(loginDto);
    }
}
